<!DOCTYPE html>
<html lang="en">
<head>
    
    <meta charset="utf-8">
    <title>_kernel - Zero Extension框架专用前端文档</title>
    
    <meta name="description" content="前端开发框架，官方地址：http://www.vertx-ui.cn" />
    
        <meta name="keywords" content="zero,zero-extension,vert.x" />
        <meta name="keyword" content="zero,zero-extension,vert.x" />
    
    
    
    <script src="scripts/prettify/prettify.js"></script>
    <script src="scripts/prettify/lang-css.js"></script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
    <link type="text/css" rel="stylesheet" href="styles/zero.css">
    <script src="scripts/nav.js" defer></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
  <div class="navicon"></div>
</label>

<label for="nav-trigger" class="overlay"></label>

<nav >
    
    <input type="text" id="nav-search" placeholder="Search" />
    
    <h2><a href="index.html">Home</a></h2><h2><a href="http://www.vertxai.cn/document/doc-web/index.html" target="_blank" class="menu-item" id="website_link" >「Api」Zero Ai</a></h2><h2><a href="http://www.vertxui.cn/document/doc-web/index.html" target="_blank" class="menu-item" id="website_link" >「Api」Zero Ui</a></h2><h2><a href="http://www.vertxui.cn/document/doc-web-extension/index.html" target="_blank" class="menu-item" id="website_link" >「Api」Zero Ui Extension</a></h2><h2><a href="http://www.vertxui.cn" target="_blank" class="menu-item" id="website_link" >「Home」Zero UI</a></h2><h2><a href="http://www.vertxai.cn" target="_blank" class="menu-item" id="website_link" >「Home」Zero Ai</a></h2><h2><a href="http://www.vertxup.cn" target="_blank" class="menu-item" id="website_link" >「Home」Zero Framework</a></h2><h2><a href="http://www.origin-x.cn" target="_blank" class="menu-item" id="website_link" >「Home」Origin X Engine</a></h2><h3>Classes</h3><ul><li><a href="I.html">I</a><ul class='methods'><li data-type='method'><a href="I.html#.action">action</a></li><li data-type='method'><a href="I.html#.apis">apis</a></li><li data-type='method'><a href="I.html#.app">app</a></li><li data-type='method'><a href="I.html#.application">application</a></li><li data-type='method'><a href="I.html#.attributes">attributes</a></li><li data-type='method'><a href="I.html#.authorize">authorize</a></li><li data-type='method'><a href="I.html#.category">category</a></li><li data-type='method'><a href="I.html#.company">company</a></li><li data-type='method'><a href="I.html#.control">control</a></li><li data-type='method'><a href="I.html#.forest">forest</a></li><li data-type='method'><a href="I.html#.form">form</a></li><li data-type='method'><a href="I.html#.forms">forms</a></li><li data-type='method'><a href="I.html#.inited">inited</a></li><li data-type='method'><a href="I.html#.jobResume">jobResume</a></li><li data-type='method'><a href="I.html#.jobs">jobs</a></li><li data-type='method'><a href="I.html#.jobStart">jobStart</a></li><li data-type='method'><a href="I.html#.jobStop">jobStop</a></li><li data-type='method'><a href="I.html#.lists">lists</a></li><li data-type='method'><a href="I.html#.login">login</a></li><li data-type='method'><a href="I.html#.logout">logout</a></li><li data-type='method'><a href="I.html#.menus">menus</a></li><li data-type='method'><a href="I.html#.mission">mission</a></li><li data-type='method'><a href="I.html#.module">module</a></li><li data-type='method'><a href="I.html#.ops">ops</a></li><li data-type='method'><a href="I.html#.page">page</a></li><li data-type='method'><a href="I.html#.password">password</a></li><li data-type='method'><a href="I.html#.profile">profile</a></li><li data-type='method'><a href="I.html#.relation">relation</a></li><li data-type='method'><a href="I.html#.relationDelete">relationDelete</a></li><li data-type='method'><a href="I.html#.relationSave">relationSave</a></li><li data-type='method'><a href="I.html#.tabular">tabular</a></li><li data-type='method'><a href="I.html#.todo">todo</a></li><li data-type='method'><a href="I.html#.token">token</a></li><li data-type='method'><a href="I.html#.uri">uri</a></li><li data-type='method'><a href="I.html#.user">user</a></li><li data-type='method'><a href="I.html#.visitor">visitor</a></li></ul></li><li><a href="IxDialog.html">IxDialog</a></li><li><a href="IxTab.html">IxTab</a></li><li><a href="Login.html">Login</a></li><li><a href="Op.html">Op</a><ul class='methods'><li data-type='method'><a href="Op.html#.$opLogin">$opLogin</a></li><li data-type='method'><a href="Op.html#.$opLogout">$opLogout</a></li></ul></li><li><a href="X6.html">X6</a></li></ul><h3>Modules</h3><ul><li><a href="module-_channel.html">_channel</a><ul class='methods'><li data-type='method'><a href="module-_channel.html#.yiAssist">yiAssist</a></li><li data-type='method'><a href="module-_channel.html#.yiColumn">yiColumn</a></li><li data-type='method'><a href="module-_channel.html#.yiCompany">yiCompany</a></li><li data-type='method'><a href="module-_channel.html#.yiContainer">yiContainer</a></li><li data-type='method'><a href="module-_channel.html#.yiControl">yiControl</a></li><li data-type='method'><a href="module-_channel.html#.yiModule">yiModule</a></li><li data-type='method'><a href="module-_channel.html#.yiPartForm">yiPartForm</a></li><li data-type='method'><a href="module-_channel.html#.yiStandard">yiStandard</a></li><li data-type='method'><a href="module-_channel.html#.ylCard">ylCard</a></li><li data-type='method'><a href="module-_channel.html#.ylDynamic">ylDynamic</a></li><li data-type='method'><a href="module-_channel.html#.ylTabExtra">ylTabExtra</a></li><li data-type='method'><a href="module-_channel.html#.yoAction">yoAction</a></li><li data-type='method'><a href="module-_channel.html#.yoAmbient">yoAmbient</a></li><li data-type='method'><a href="module-_channel.html#.yoComponent">yoComponent</a></li><li data-type='method'><a href="module-_channel.html#.yoControl">yoControl</a></li><li data-type='method'><a href="module-_channel.html#.yoDynamic">yoDynamic</a></li><li data-type='method'><a href="module-_channel.html#.yoFilter">yoFilter</a></li><li data-type='method'><a href="module-_channel.html#.yoForm">yoForm</a></li><li data-type='method'><a href="module-_channel.html#.yoFormAdd">yoFormAdd</a></li><li data-type='method'><a href="module-_channel.html#.yoFormEdit">yoFormEdit</a></li><li data-type='method'><a href="module-_channel.html#.yoList">yoList</a></li><li data-type='method'><a href="module-_channel.html#.yoListBatch">yoListBatch</a></li><li data-type='method'><a href="module-_channel.html#.yoListExtra">yoListExtra</a></li><li data-type='method'><a href="module-_channel.html#.yoListOpen">yoListOpen</a></li><li data-type='method'><a href="module-_channel.html#.yoListSearch">yoListSearch</a></li><li data-type='method'><a href="module-_channel.html#.yoPolymorphism">yoPolymorphism</a></li><li data-type='method'><a href="module-_channel.html#.yoRender">yoRender</a></li><li data-type='method'><a href="module-_channel.html#.yoTable">yoTable</a></li><li data-type='method'><a href="module-_channel.html#.yoTabPage">yoTabPage</a></li><li data-type='method'><a href="module-_channel.html#.yuRouter">yuRouter</a></li></ul></li><li><a href="module-_constant.html">_constant</a><ul class='members'><li data-type='member'><a href="module-_constant.html#.Mode">Mode</a></li><li data-type='member'><a href="module-_constant.html#.Opt">Opt</a></li><li data-type='member'><a href="module-_constant.html#.V">V</a></li></ul></li><li><a href="module-_event.html">_event</a><ul class='methods'><li data-type='method'><a href="module-_event.html#.*fabricAnalyzer">*fabricAnalyzer</a></li><li data-type='method'><a href="module-_event.html#.etParallel">etParallel</a></li><li data-type='method'><a href="module-_event.html#.etPure">etPure</a></li><li data-type='method'><a href="module-_event.html#.etSequence">etSequence</a></li><li data-type='method'><a href="module-_event.html#.etUniform">etUniform</a></li></ul></li><li><a href="module-_function.html">_function</a><ul class='methods'><li data-type='method'><a href="module-_function.html#.mapAsyncDatum">mapAsyncDatum</a></li><li data-type='method'><a href="module-_function.html#.mapButtons">mapButtons</a></li><li data-type='method'><a href="module-_function.html#.mapFun">mapFun</a></li><li data-type='method'><a href="module-_function.html#.mapMeta">mapMeta</a></li><li data-type='method'><a href="module-_function.html#.mapUri">mapUri</a></li><li data-type='method'><a href="module-_function.html#.onApp">onApp</a></li><li data-type='method'><a href="module-_function.html#.onOp">onOp</a></li><li data-type='method'><a href="module-_function.html#.onRelation">onRelation</a></li><li data-type='method'><a href="module-_function.html#.onRelationIdentifiers">onRelationIdentifiers</a></li><li data-type='method'><a href="module-_function.html#.onRelationType">onRelationType</a></li><li data-type='method'><a href="module-_function.html#.onTree">onTree</a></li><li data-type='method'><a href="module-_function.html#.toArray">toArray</a></li><li data-type='method'><a href="module-_function.html#.toColor">toColor</a></li><li data-type='method'><a href="module-_function.html#.toDialog">toDialog</a></li><li data-type='method'><a href="module-_function.html#.toIdentifier">toIdentifier</a></li><li data-type='method'><a href="module-_function.html#.toModelId">toModelId</a></li><li data-type='method'><a href="module-_function.html#.toNamespace">toNamespace</a></li><li data-type='method'><a href="module-_function.html#.toUri">toUri</a></li><li data-type='method'><a href="module-_function.html#.upCondition">upCondition</a></li><li data-type='method'><a href="module-_function.html#.upList">upList</a></li><li data-type='method'><a href="module-_function.html#.upLoading">upLoading</a></li><li data-type='method'><a href="module-_function.html#.upQuery">upQuery</a></li><li data-type='method'><a href="module-_function.html#.upValue">upValue</a></li></ul></li><li><a href="module-_kernel.html">_kernel</a><ul class='methods'><li data-type='method'><a href="module-_kernel.html#.authData">authData</a></li><li data-type='method'><a href="module-_kernel.html#.authGroups">authGroups</a></li><li data-type='method'><a href="module-_kernel.html#.authKeySet">authKeySet</a></li><li data-type='method'><a href="module-_kernel.html#.authRequest">authRequest</a></li><li data-type='method'><a href="module-_kernel.html#.authRule">authRule</a></li><li data-type='method'><a href="module-_kernel.html#.authTpl">authTpl</a></li><li data-type='method'><a href="module-_kernel.html#.authTreeRes">authTreeRes</a></li><li data-type='method'><a href="module-_kernel.html#.configClick">configClick</a></li><li data-type='method'><a href="module-_kernel.html#.configColumn">configColumn</a></li><li data-type='method'><a href="module-_kernel.html#.configDialog">configDialog</a></li><li data-type='method'><a href="module-_kernel.html#.configGrid">configGrid</a></li><li data-type='method'><a href="module-_kernel.html#.configRelation">configRelation</a></li><li data-type='method'><a href="module-_kernel.html#.designer">designer</a></li><li data-type='method'><a href="module-_kernel.html#.dialog">dialog</a></li><li data-type='method'><a href="module-_kernel.html#.form">form</a></li><li data-type='method'><a href="module-_kernel.html#.inApi">inApi</a></li><li data-type='method'><a href="module-_kernel.html#.init">init</a></li><li data-type='method'><a href="module-_kernel.html#.inJob">inJob</a></li><li data-type='method'><a href="module-_kernel.html#.outApi">outApi</a></li><li data-type='method'><a href="module-_kernel.html#.outJob">outJob</a></li><li data-type='method'><a href="module-_kernel.html#.parserOfButton">parserOfButton</a></li><li data-type='method'><a href="module-_kernel.html#.parserOfColor">parserOfColor</a></li><li data-type='method'><a href="module-_kernel.html#.sexExAction">sexExAction</a></li><li data-type='method'><a href="module-_kernel.html#.sexExPlugin">sexExPlugin</a></li><li data-type='method'><a href="module-_kernel.html#.uiDialog">uiDialog</a></li><li data-type='method'><a href="module-_kernel.html#.uiTab">uiTab</a></li><li data-type='method'><a href="module-_kernel.html#.xuiContainer">xuiContainer</a></li><li data-type='method'><a href="module-_kernel.html#.xuiDecorator">xuiDecorator</a></li><li data-type='method'><a href="module-_kernel.html#.xuiGrid">xuiGrid</a></li></ul></li><li><a href="module-_rx.html">_rx</a><ul class='methods'><li data-type='method'><a href="module-_rx.html#.rsDirty">rsDirty</a></li><li data-type='method'><a href="module-_rx.html#.rsLoading">rsLoading</a></li><li data-type='method'><a href="module-_rx.html#.rsOpened">rsOpened</a></li><li data-type='method'><a href="module-_rx.html#.rsSubmitting">rsSubmitting</a></li><li data-type='method'><a href="module-_rx.html#.rsVisible">rsVisible</a></li><li data-type='method'><a href="module-_rx.html#.rx">rx</a></li><li data-type='method'><a href="module-_rx.html#.rxAssist">rxAssist</a></li><li data-type='method'><a href="module-_rx.html#.rxBatchDelete">rxBatchDelete</a></li><li data-type='method'><a href="module-_rx.html#.rxBatchEdit">rxBatchEdit</a></li><li data-type='method'><a href="module-_rx.html#.rxChannel">rxChannel</a></li><li data-type='method'><a href="module-_rx.html#.rxColumn">rxColumn</a></li><li data-type='method'><a href="module-_rx.html#.rxColumnMy">rxColumnMy</a></li><li data-type='method'><a href="module-_rx.html#.rxColumnSave">rxColumnSave</a></li><li data-type='method'><a href="module-_rx.html#.rxCondition">rxCondition</a></li><li data-type='method'><a href="module-_rx.html#.rxDelete">rxDelete</a></li><li data-type='method'><a href="module-_rx.html#.rxDirty">rxDirty</a></li><li data-type='method'><a href="module-_rx.html#.rxExport">rxExport</a></li><li data-type='method'><a href="module-_rx.html#.rxFilter">rxFilter</a></li><li data-type='method'><a href="module-_rx.html#.rxImport">rxImport</a></li><li data-type='method'><a href="module-_rx.html#.rxLoading">rxLoading</a></li><li data-type='method'><a href="module-_rx.html#.rxPostClose">rxPostClose</a></li><li data-type='method'><a href="module-_rx.html#.rxPostOpen">rxPostOpen</a></li><li data-type='method'><a href="module-_rx.html#.rxProjection">rxProjection</a></li><li data-type='method'><a href="module-_rx.html#.rxSearch">rxSearch</a></li><li data-type='method'><a href="module-_rx.html#.rxSelected">rxSelected</a></li><li data-type='method'><a href="module-_rx.html#.rxSubmitting">rxSubmitting</a></li><li data-type='method'><a href="module-_rx.html#.rxTabAdd">rxTabAdd</a></li><li data-type='method'><a href="module-_rx.html#.rxTabClose">rxTabClose</a></li><li data-type='method'><a href="module-_rx.html#.rxTabEdit">rxTabEdit</a></li><li data-type='method'><a href="module-_rx.html#.rxTabOpen">rxTabOpen</a></li><li data-type='method'><a href="module-_rx.html#.rxView">rxView</a></li></ul></li><li><a href="module-_smart.html">_smart</a><ul class='methods'><li data-type='method'><a href="module-_smart.html#.smartForm">smartForm</a></li><li data-type='method'><a href="module-_smart.html#.smartList">smartList</a></li></ul></li><li><a href="module-web-component.html">web-component</a><ul class='methods'><li data-type='method'><a href="module-web-component.html#.*ExAction">*ExAction</a></li><li data-type='method'><a href="module-web-component.html#.*ExButton">*ExButton</a></li><li data-type='method'><a href="module-web-component.html#.*ExDialog">*ExDialog</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorBatch">*ExEditorBatch</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorColumn">*ExEditorColumn</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorExport">*ExEditorExport</a></li><li data-type='method'><a href="module-web-component.html#.*ExEditorImport">*ExEditorImport</a></li><li data-type='method'><a href="module-web-component.html#.*ExNavigation">*ExNavigation</a></li><li data-type='method'><a href="module-web-component.html#.*ExSearch">*ExSearch</a></li><li data-type='method'><a href="module-web-component.html#.*ExSider">*ExSider</a></li><li data-type='method'><a href="module-web-component.html#.*ExSider">*ExSider</a></li><li data-type='method'><a href="module-web-component.html#.*ExTable">*ExTable</a></li><li data-type='method'><a href="module-web-component.html#.*IxChannel">*IxChannel</a></li><li data-type='method'><a href="module-web-component.html#.*IxDatabase">*IxDatabase</a></li><li data-type='method'><a href="module-web-component.html#.*IxDict">*IxDict</a></li><li data-type='method'><a href="module-web-component.html#.*IxIntegration">*IxIntegration</a></li><li data-type='method'><a href="module-web-component.html#.*IxMapping">*IxMapping</a></li><li data-type='method'><a href="module-web-component.html#.*IxRule">*IxRule</a></li><li data-type='method'><a href="module-web-component.html#.*IxService">*IxService</a></li><li data-type='method'><a href="module-web-component.html#.ExAccount">ExAccount</a></li><li data-type='method'><a href="module-web-component.html#.ExAdmin">ExAdmin</a></li><li data-type='method'><a href="module-web-component.html#.ExAdmin">ExAdmin</a></li><li data-type='method'><a href="module-web-component.html#.ExApps">ExApps</a></li><li data-type='method'><a href="module-web-component.html#.ExArbor">ExArbor</a></li><li data-type='method'><a href="module-web-component.html#.ExCategory">ExCategory</a></li><li data-type='method'><a href="module-web-component.html#.ExDeploy">ExDeploy</a></li><li data-type='method'><a href="module-web-component.html#.ExEntry">ExEntry</a></li><li data-type='method'><a href="module-web-component.html#.ExForm">ExForm</a></li><li data-type='method'><a href="module-web-component.html#.ExGraphicEditor">ExGraphicEditor</a></li><li data-type='method'><a href="module-web-component.html#.ExGraphicViewer">ExGraphicViewer</a></li><li data-type='method'><a href="module-web-component.html#.ExHistory">ExHistory</a></li><li data-type='method'><a href="module-web-component.html#.ExListComplex">ExListComplex</a></li><li data-type='method'><a href="module-web-component.html#.ExListOpen">ExListOpen</a></li><li data-type='method'><a href="module-web-component.html#.ExListQuery">ExListQuery</a></li><li data-type='method'><a href="module-web-component.html#.ExLogged">ExLogged</a></li><li data-type='method'><a href="module-web-component.html#.ExLogged">ExLogged</a></li><li data-type='method'><a href="module-web-component.html#.ExLogin">ExLogin</a></li><li data-type='method'><a href="module-web-component.html#.ExRecord">ExRecord</a></li><li data-type='method'><a href="module-web-component.html#.ExRegiment">ExRegiment</a></li><li data-type='method'><a href="module-web-component.html#.ExRelation">ExRelation</a></li><li data-type='method'><a href="module-web-component.html#.ExService">ExService</a></li><li data-type='method'><a href="module-web-component.html#.ExSubmit">ExSubmit</a></li><li data-type='method'><a href="module-web-component.html#.ExTab">ExTab</a></li><li data-type='method'><a href="module-web-component.html#.ExTabular">ExTabular</a></li><li data-type='method'><a href="module-web-component.html#.ExTrackField">ExTrackField</a></li><li data-type='method'><a href="module-web-component.html#.ExWizard">ExWizard</a></li><li data-type='method'><a href="module-web-component.html#.OxAnchor">OxAnchor</a></li><li data-type='method'><a href="module-web-component.html#.OxCard">OxCard</a></li><li data-type='method'><a href="module-web-component.html#.OxCategory">OxCategory</a></li><li data-type='method'><a href="module-web-component.html#.OxCi">OxCi</a></li><li data-type='method'><a href="module-web-component.html#.OxForm">OxForm</a></li><li data-type='method'><a href="module-web-component.html#.OxHistory">OxHistory</a></li><li data-type='method'><a href="module-web-component.html#.OxList">OxList</a></li><li data-type='method'><a href="module-web-component.html#.OxModule">OxModule</a></li><li data-type='method'><a href="module-web-component.html#.OxRelation">OxRelation</a></li><li data-type='method'><a href="module-web-component.html#.OxTab">OxTab</a></li><li data-type='method'><a href="module-web-component.html#.OxTopology">OxTopology</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#@ox">@ox</a></li></ul>
</nav>

<div id="main">
    
    <h1 class="page-title">_kernel</h1>
    

    




<section>

<header>
    
        
            
        
    
</header>

<article>
    
        <div class="container-overview">
        
            
                <div class="description usertext"><h1>Extension内核模块</h1>
<p>扩展内核的核心模块</p>
<h2>操作列表</h2>
<table>
<thead>
<tr>
<th style="text-align:left">函数</th>
<th style="text-align:left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">authData</td>
<td style="text-align:left">ACL管理中生成定义数据专用函数。</td>
</tr>
<tr>
<td style="text-align:left">authGroups</td>
<td style="text-align:left">ACL权限分组专用函数。</td>
</tr>
<tr>
<td style="text-align:left">authKeySet</td>
<td style="text-align:left">ACL操作过程中已选择值专用函数。</td>
</tr>
<tr>
<td style="text-align:left">authRequest</td>
<td style="text-align:left">ACL请求构造专用函数。</td>
</tr>
<tr>
<td style="text-align:left">authRule</td>
<td style="text-align:left">ACL资源访问者规则定义读取专用函数。</td>
</tr>
<tr>
<td style="text-align:left">authTpl</td>
<td style="text-align:left">ACL界面模板生成专用函数。</td>
</tr>
<tr>
<td style="text-align:left">authTreeRes</td>
<td style="text-align:left">ACL资源树数据构造函数。</td>
</tr>
<tr>
<td style="text-align:left">configClick</td>
<td style="text-align:left">按钮扩展配置。</td>
</tr>
<tr>
<td style="text-align:left">configColumn</td>
<td style="text-align:left">表格列扩展配置。</td>
</tr>
<tr>
<td style="text-align:left">configDialog</td>
<td style="text-align:left">窗口扩展配置。</td>
</tr>
<tr>
<td style="text-align:left">configGrid</td>
<td style="text-align:left">Grid布局扩展配置。</td>
</tr>
<tr>
<td style="text-align:left">configRelation</td>
<td style="text-align:left">关系运算扩展配置。</td>
</tr>
<tr>
<td style="text-align:left">designer</td>
<td style="text-align:left">「内部类」图编辑器。</td>
</tr>
<tr>
<td style="text-align:left">dialog</td>
<td style="text-align:left">「内部类」窗口。</td>
</tr>
<tr>
<td style="text-align:left">form</td>
<td style="text-align:left">「内部类」表单。</td>
</tr>
<tr>
<td style="text-align:left">inApi</td>
<td style="text-align:left">接口管理输入。</td>
</tr>
<tr>
<td style="text-align:left">init</td>
<td style="text-align:left">「内部类」初始化数据（环境信息）。</td>
</tr>
<tr>
<td style="text-align:left">inJob</td>
<td style="text-align:left">任务管理输入。</td>
</tr>
<tr>
<td style="text-align:left">outApi</td>
<td style="text-align:left">接口管理输出。</td>
</tr>
<tr>
<td style="text-align:left">outJob</td>
<td style="text-align:left">任务管理输出。</td>
</tr>
<tr>
<td style="text-align:left">parserOfButton</td>
<td style="text-align:left">「解析」生成操作专用解析器。</td>
</tr>
<tr>
<td style="text-align:left">parserOfColor</td>
<td style="text-align:left">「解析」生成彩色日志解析器。</td>
</tr>
<tr>
<td style="text-align:left">sexExAction</td>
<td style="text-align:left">扩展操作专用函数，处理特定配置。</td>
</tr>
<tr>
<td style="text-align:left">sexExPlugin</td>
<td style="text-align:left">插件接入专用函数，处理和插件相关的部分。</td>
</tr>
<tr>
<td style="text-align:left">uiDialog</td>
<td style="text-align:left">「组件」构造Dialog快速开发组件。</td>
</tr>
<tr>
<td style="text-align:left">uiTab</td>
<td style="text-align:left">「组件」构造Tab快速开发组件。</td>
</tr>
<tr>
<td style="text-align:left">xuiContainer</td>
<td style="text-align:left">动态渲染容器组件（模板）。</td>
</tr>
<tr>
<td style="text-align:left">xuiDecorator</td>
<td style="text-align:left">动态渲染修饰模块（容器+组件）。</td>
</tr>
<tr>
<td style="text-align:left">xuiGrid</td>
<td style="text-align:left">动态渲染Grid组件（页面+组件）。</td>
</tr>
</tbody>
</table></div>
            

            
                




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>
































            
        
        </div>
    

    

    

    
    
    

     

    

    

    
        <h3 class="subsection-title">Methods</h3>

        
            

    

    <h4 class="name" id=".authData"><span class="type-signature">(static) </span>authData<span class="signature">(configuration, items, views)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「引擎」<code>Ex.authData</code></h2>
<h3>1.基本介绍</h3>
<p>复杂配置，用于生成数据域的元数据定义信息，主要包含：</p>
<ol>
<li>行定义信息（rows），执行行过滤专用。</li>
<li>查询条件信息（criteria），执行数据过滤专用（预处理）。</li>
<li>列定义信息（projection），执行列过滤专用。</li>
<li>资源视图信息（view），执行资源视图筛选（主视图）。</li>
<li>资源访问者信息（visitant），新维度，执行复杂的资源访问逻辑。</li>
</ol>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>configuration</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>传入的核心ACL配置数据</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>items</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>和ACL配置相关的资源组项目信息</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>views</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>视图信息</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".authGroups"><span class="type-signature">(async, static) </span>authGroups<span class="signature">(state, types)</span><span class="type-signature"> &rarr; {Promise.&lt;*>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「引擎」<code>Ex.authGroups</code></h2>
<h3>1.基本介绍</h3>
<ol>
<li>根据传入的 treeData 提取 resource.tree 构造分类</li>
<li>读取远程的权限组，权限组挂在分类下边</li>
</ol>
<blockquote>
<p>该方法用于在管理过程中将资源和权限进行树形分组，生成引导菜单。</p>
</blockquote>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>state</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>当前组件状态信息</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>types</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>资源树类型定义信息</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;*></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".authKeySet"><span class="type-signature">(static) </span>authKeySet<span class="signature">(source, config, grouped)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「引擎」<code>Ex.authKeySet</code></h2>
<h3>1.基本介绍</h3>
<p>根据datum的字典数据以及动态执行器，生成不同权限管理的基础配置（主视图）。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>source</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>资源记录过滤源</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>行过滤、列过滤、查询条件基础配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>grouped</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>权限分组哈希表</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>最终的权限定义主键集</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".authRequest"><span class="type-signature">(static) </span>authRequest<span class="signature">(reference, selected, fnEvent)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「引擎」<code>Ex.authRequest</code></h2>
<h3>1.基本介绍</h3>
<p>生成ACL管理请求专用函数，针对不同类型的权限管理生成统一的ACL管理请求。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React组件引用</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>selected</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>权限管理过程中已经选择的项</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>fnEvent</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last"><p>专用事件执行函数（生成数据专用）</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".authRule"><span class="type-signature">(static) </span>authRule<span class="signature">()</span><span class="type-signature"></span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「引擎」<code>Ex.authRule</code></h2>
<h3>1.基本介绍</h3>
<p>读取当前界面相关的所有权限管理规则定义，这个方法用来完成界面生成（动态专用）。</p>
</div>




























        
            

    

    <h4 class="name" id=".authTpl"><span class="type-signature">(async, static) </span>authTpl<span class="signature">(params)</span><span class="type-signature"> &rarr; {Promise.&lt;*>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「引擎」<code>Ex.authTpl</code></h2>
<h3>1.基本介绍</h3>
<p>生成界面模板，根据界面模板来处理ACL管理。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>当前请求的参数信息</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;*></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".authTreeRes"><span class="type-signature">(async, static) </span>authTreeRes<span class="signature">(state)</span><span class="type-signature"> &rarr; {Promise.&lt;*>}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「引擎」<code>Ex.authTreeRes</code></h2>
<h3>1.基本介绍</h3>
<ol>
<li>直接读取 resource.tree 中的内容</li>
<li>遇到 ID:XXX 需要执行判断，进行深度树的二次读取</li>
<li>最终构造完成的树形数组（parentId一致）</li>
</ol>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>state</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>React组件状态</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;*></span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".configClick"><span class="type-signature">(static) </span>configClick<span class="signature">(config, reference)</span><span class="type-signature"> &rarr; {function}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「配置」<code>Ex.configClick</code></h2>
<p>按钮扩展配置。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>按钮完整配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回需要绑定的执行函数</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">function</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".configColumn"><span class="type-signature">(static) </span>configColumn<span class="signature">(original, config)</span><span class="type-signature"> &rarr; {Array}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「配置」<code>Ex.configColumn</code></h2>
<p>表格列扩展配置。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>original</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            

            

            <td class="description last"><p>原始列配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>表格专用输入配置</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回处理过后的列配置</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".configDialog"><span class="type-signature">(static) </span>configDialog<span class="signature">(input)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「配置」<code>Ex.configDialog</code></h2>
<p>窗口扩展配置</p>
<p>Button / Link 中的 Dialog专用配置，直接的 Dialog不需要配置
转换处理，Dialog的基础配置直接放到 config 变量中</p>
<p>返回数据格式如：</p>
<pre class="prettyprint source lang-json"><code>{
     button: &quot;按钮基本配置&quot;,
     dialog: &quot;关联窗口配置&quot;,
     component: &quot;按钮关联组件&quot;,
     componentConfig: &quot;关联组件配置&quot;
}
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>input</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>基本输入配置</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回构造好的配置</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".configGrid"><span class="type-signature">(static) </span>configGrid<span class="signature">(grid, control, prefix)</span><span class="type-signature"> &rarr; {Array}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「配置」<code>Ex.configGrid</code></h2>
<p>Grid布局扩展配置。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>grid</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Array></span>


            
            </td>

            

            

            <td class="description last"><p>矩阵专用扩展Grid布局配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>control</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>控件表</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>prefix</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>前缀信息，用于识别组件的key专用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回最终布局</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".configRelation"><span class="type-signature">(static) </span>configRelation<span class="signature">(data, config, reference)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「配置」<code>Ex.configRelation</code></h2>
<p>关系扩展配置，data 中的数据结构：</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;up&quot;: [],
    &quot;down&quot;: []
}
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>data</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>基本数据信息</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>关系完整配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>最终的关系配置数据信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".designer"><span class="type-signature">(static) </span>designer<span class="signature">(reference)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「内部类」<code>Ex.designer</code></h2>
<p>图编辑器专用（文档暂时不提供）</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
            </td>

            

            

            <td class="description last"></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".dialog"><span class="type-signature">(static) </span>dialog<span class="signature">(reference)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「内部类」<code>Ex.dialog</code></h2>
<p>根据 <code>reference</code> 执行窗口操作</p>
<pre class="prettyprint source lang-json"><code>{
    add: (data) => Promise,
    save: (data) => Promise,
    saveRow: (data) => Promise,
    saveSelected: (data) => Promise
}
</code></pre>
<h3>函数说明</h3>
<table>
<thead>
<tr>
<th style="text-align:left">函数名</th>
<th style="text-align:left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">add</td>
<td style="text-align:left">窗口添加执行</td>
</tr>
<tr>
<td style="text-align:left">save</td>
<td style="text-align:left">窗口保存执行</td>
</tr>
<tr>
<td style="text-align:left">saveRow</td>
<td style="text-align:left">保存当前行</td>
</tr>
<tr>
<td style="text-align:left">saveSelected</td>
<td style="text-align:left">保存当前窗口选择的</td>
</tr>
</tbody>
</table>
<p>当前API的框架内部调用代码如：</p>
<pre class="prettyprint source lang-js"><code>import Ex from 'ex';

const $opSaveField = (reference) => params =>
     Ex.dialog(reference).saveRow(params);
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回对象信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".form"><span class="type-signature">(static) </span>form<span class="signature">(reference)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「内部类」<code>Ex.form</code></h2>
<p>根据 <code>reference</code> 执行表单操作</p>
<pre class="prettyprint source lang-json"><code>{
    add: (params) => Promise,
    save: (params) => Promise,
    remove: (params) => Promise,
    filter: (params) => Promise,
    query: (params) => Promise,
    wizard: (params) => Promise
}
</code></pre>
<h3>函数说明</h3>
<table>
<thead>
<tr>
<th style="text-align:left">函数名</th>
<th style="text-align:left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">add</td>
<td style="text-align:left">添加表单提交</td>
</tr>
<tr>
<td style="text-align:left">save</td>
<td style="text-align:left">保存表单提交</td>
</tr>
<tr>
<td style="text-align:left">remove</td>
<td style="text-align:left">删除表单提交</td>
</tr>
<tr>
<td style="text-align:left">filter</td>
<td style="text-align:left">高级搜索查询条件处理</td>
</tr>
<tr>
<td style="text-align:left">query</td>
<td style="text-align:left">直接搜索表单处理</td>
</tr>
<tr>
<td style="text-align:left">wizard</td>
<td style="text-align:left">步骤表单提交</td>
</tr>
</tbody>
</table>
<p>当前API的框架内部调用代码如：</p>
<pre class="prettyprint source lang-js"><code>import Ex from 'ex';

const $opAdd = (reference) => params => Ex.form(reference).add(params, {
     uri: &quot;/api/role&quot;,
     dialog: &quot;added&quot;,
});
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回对象信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".inApi"><span class="type-signature">(static) </span>inApi<span class="signature">(uri)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「输入」<code>Ex.inApi</code></h2>
<p>任务处理输入</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>uri</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>任务配置</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>处理过的任务数据</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".init"><span class="type-signature">(static) </span>init<span class="signature">(reference)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「内部类」<code>Ex.init</code></h2>
<p>根据 <code>reference</code> 执行初始化</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;company&quot;: () => Promise
}
</code></pre>
<h3>函数说明</h3>
<table>
<thead>
<tr>
<th style="text-align:left">函数名</th>
<th style="text-align:left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">company</td>
<td style="text-align:left">企业信息初始化</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回最终数据</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".inJob"><span class="type-signature">(static) </span>inJob<span class="signature">(mission)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「输入」<code>Ex.inJob</code></h2>
<p>任务处理输入</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>mission</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>任务配置</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>处理过的任务数据</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".outApi"><span class="type-signature">(static) </span>outApi<span class="signature">(params)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「输出」<code>Ex.outApi</code></h2>
<p>任务处理输出</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>提交之前原始任务数据</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>任务输出数据</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".outJob"><span class="type-signature">(static) </span>outJob<span class="signature">(params)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「输出」<code>Ex.outJob</code></h2>
<p>任务处理输出</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>params</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>提交之前原始任务数据</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>任务输出数据</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".parserOfButton"><span class="type-signature">(static) </span>parserOfButton<span class="signature">(reference)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「解析」<code>Ex.parserOfButton</code></h2>
<h3>1. 基本介绍</h3>
<p>生成按钮专用解析器，返回对象结构如（每个键都是函数）：</p>
<pre class="prettyprint source lang-js"><code>{
    parsePlugin: () => &quot;按钮插件解析函数&quot;,
    parseComponent: () => &quot;组件解析函数&quot;,
    parseControl: () => &quot;按钮本身解析函数，解析不同组件专用，LIST, FORM 不同&quot;,
    parseOp: () => &quot;解析按钮本身专用方法&quot;,
}
</code></pre>
<table>
<thead>
<tr>
<th style="text-align:left">函数名</th>
<th>异步</th>
<th>同步</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">parsePlugin</td>
<td>o</td>
<td>o</td>
<td style="text-align:left">插件解析专用。</td>
</tr>
<tr>
<td style="text-align:left">parseComponent</td>
<td>o</td>
<td>o</td>
<td style="text-align:left">组件解析专用。</td>
</tr>
<tr>
<td style="text-align:left">parseControl</td>
<td>o</td>
<td>o</td>
<td style="text-align:left">控件解析专用。</td>
</tr>
<tr>
<td style="text-align:left">parseOp</td>
<td>o</td>
<td>x</td>
<td style="text-align:left">操作按钮解析专用。</td>
</tr>
</tbody>
</table>
<h3>2. 子函数解析</h3>
<h4>2.1. parsePlugin（解析Object）</h4>
<p><strong>入参表</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th>类型</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">buttons</td>
<td>Object</td>
<td style="text-align:left">全按钮配置，<code>key = Object</code>结构。</td>
</tr>
<tr>
<td style="text-align:left">options</td>
<td>Object</td>
<td style="text-align:left">列表/组件的专用配置<code>options</code>结构。</td>
</tr>
<tr>
<td style="text-align:left">async</td>
<td>Boolean</td>
<td style="text-align:left">是否执行异步模式。</td>
</tr>
</tbody>
</table>
<p>插件解析主要处理<code>Object</code>的按钮专用，处理每个元素（Object类型）的配置信息，它用来处理按钮的某些功能。
button元素中有关此函数的数据结构如下：</p>
<pre class="prettyprint source lang-js"><code>{
    plugin:{
        tooltip: &quot;...&quot;,
        confirm: &quot;...&quot;,
        prompt: &quot;...&quot;,
        connect: &quot;...&quot;,
        message: &quot;...&quot;
    }
}
</code></pre>
<p><strong>配置项</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">配置项</th>
<th>类型</th>
<th style="text-align:left">表达式</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">tooltip</td>
<td>Boolean</td>
<td style="text-align:left"></td>
<td style="text-align:left">启用tooltip功能，直接设置<code>tooltip=true</code>来打开<code>&lt;Tooltip/&gt;</code>，按钮外围浮游提示信息。</td>
</tr>
<tr>
<td style="text-align:left">confirm</td>
<td>String</td>
<td style="text-align:left">options[confirm]</td>
<td style="text-align:left">执行<code>Modal.confirm</code>功能，弹出提示框确认/取消。</td>
</tr>
<tr>
<td style="text-align:left">prompt</td>
<td>String</td>
<td style="text-align:left">options[prompt]</td>
<td style="text-align:left">实现浮游提示确认/取消框。</td>
</tr>
<tr>
<td style="text-align:left">connect</td>
<td>String</td>
<td style="text-align:left">options[connect]</td>
<td style="text-align:left">配置被链接的操作元素ID，最终会调用<code>Ux.connectId</code>触发该元素的onClick事件。</td>
</tr>
<tr>
<td style="text-align:left">message</td>
<td>String</td>
<td style="text-align:left">options[message]</td>
<td style="text-align:left">需要使用的文本信息。</td>
</tr>
</tbody>
</table>
<h4>2.2. parseComponent（解析Object）</h4>
<p><strong>入参表</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th>类型</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">buttons</td>
<td>Object</td>
<td style="text-align:left">全按钮配置，<code>key = Object</code>结构。</td>
</tr>
<tr>
<td style="text-align:left">options</td>
<td>Object</td>
<td style="text-align:left">列表/组件的专用配置<code>options</code>结构。</td>
</tr>
<tr>
<td style="text-align:left">component</td>
<td>Object</td>
<td style="text-align:left">动态组件配置信息。</td>
</tr>
<tr>
<td style="text-align:left">async</td>
<td>Boolean</td>
<td style="text-align:left">是否执行异步模式。</td>
</tr>
</tbody>
</table>
<p>组件解析主要处理<code>Object</code>中按钮配置专用，<code>component</code>（第三参）中的结构如：</p>
<pre class="prettyprint source lang-js"><code>{
    plugin: &quot;Jsx元素集合，里面包含了所有可读取的组件信息。&quot;,
    config: &quot;Jsx元素所需的配置数据。&quot;
}

// 抽取配置代码如下
const Jsx = components.plugin;
const config = components.config;
</code></pre>
<blockquote>
<p>只有<code>plugin</code>和<code>config</code>有值或存在时才执行解析流程！！</p>
</blockquote>
<p>按钮配置中会存在如下数据结构：</p>
<pre class="prettyprint source lang-js"><code>{
    plugin: {
        componentType: &quot;&quot;,
        component: &quot;&quot;
    }
}
</code></pre>
<p><strong>配置项</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">配置项</th>
<th>类型</th>
<th style="text-align:left">表达式</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">componentType</td>
<td>String</td>
<td style="text-align:left">Jsx[componentType]</td>
<td style="text-align:left">用于读取Jsx元素</td>
</tr>
<tr>
<td style="text-align:left">component</td>
<td>String</td>
<td style="text-align:left">config</td>
<td style="text-align:left">component]</td>
</tr>
</tbody>
</table>
<p>注入完成了组件的Jsx元素和配置数据过后，就会调用<code>_parseContainer</code>方法执行外层容器元素信息，容器元素
主要由按钮元素的plugin决定：</p>
<pre class="prettyprint source lang-js"><code>{
    plugin:{
        window: &quot;弹出窗口&quot;,
        popover: &quot;浮游窗口&quot;,
        drawer: &quot;抽屉窗口&quot;
    }
}
</code></pre>
<p>构造的配置数据结构如下：</p>
<pre class="prettyprint source lang-js"><code>{
    type: &quot;窗口类型&quot;,
    dialog: &quot;解析的窗口配置&quot;
}
</code></pre>
<p>完整配置表格如下：</p>
<table>
<thead>
<tr>
<th style="text-align:left">待解析节点</th>
<th>生成type</th>
<th style="text-align:left">调用函数生成dialog</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">window</td>
<td>WINDOW</td>
<td style="text-align:left">Ux.aiExprWindow</td>
</tr>
<tr>
<td style="text-align:left">popover</td>
<td>POPOVER</td>
<td style="text-align:left">Ux.aiExprPopover</td>
</tr>
<tr>
<td style="text-align:left">drawer</td>
<td>DRAWER</td>
<td style="text-align:left">Ux.aiExprDrawer</td>
</tr>
<tr>
<td style="text-align:left">三者都无</td>
<td>NONE</td>
<td style="text-align:left"><code>&lt;无dialog节点&gt;</code></td>
</tr>
</tbody>
</table>
<p>该函数最终生成的完整配置表如下：</p>
<pre class="prettyprint source lang-js"><code>{
    component: &quot;Jsx元素&quot;，
    config: &quot;组件配置数据&quot;,
    type: &quot;「容器」窗口类型&quot;,
    dialog: &quot;「容器」窗口配置&quot;
}
</code></pre>
<h4>2.3. parseControl（解析Array）</h4>
<p><strong>入参表</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th>类型</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">config</td>
<td>Array</td>
<td style="text-align:left">控件配置队列。</td>
</tr>
<tr>
<td style="text-align:left">options</td>
<td>Object</td>
<td style="text-align:left">解析控件时的辅助配置信息。</td>
</tr>
<tr>
<td style="text-align:left">async</td>
<td>Boolean</td>
<td style="text-align:left">是否执行异步模式。</td>
</tr>
</tbody>
</table>
<p>该方法主要用于控件的动态配置，从远程读取<code>UI_CONTROL</code>表中的配置数据，再配合控件类型以及操作列表组合成最终用于
Jsx元素的控件属性相关信息。直接从第二参中读取<code>type</code>配置参数，该参数目前版本支持（<code>LIST</code>-列表配置，<code>FORM</code>-表单配置）。</p>
<p>第一个参数为<code>config</code>对象：</p>
<ol>
<li>「LIST」如果存在<code>config.options</code>，则可以为该对象注入<code>clientKey</code>的客户端配置。</li>
<li>「FORM」如果存在<code>config.form</code>，则重新构造<code>config.form.op</code>（该配置会影响表单中的操作，包括ACL信息），构造操作信息的同时，系统会构造<code>event</code>事件信息，并且注入到<code>config.event</code>中，该值会被<code>Fabric</code>引擎使用。</li>
</ol>
<h4>2.4. parseOp（解析Array）</h4>
<blockquote>
<p>该方法不带异步参数，不支持同步模式。</p>
</blockquote>
<p><strong>入参表</strong></p>
<table>
<thead>
<tr>
<th style="text-align:left">参数名</th>
<th>类型</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">config</td>
<td>Array</td>
<td style="text-align:left">按钮配置队列。</td>
</tr>
<tr>
<td style="text-align:left">options</td>
<td>Object</td>
<td style="text-align:left">解析操作时的辅助配置信息。</td>
</tr>
</tbody>
</table>
<p>该方法主要用于<code>ExListXX</code>组件解析组件操作用，目前执该流程的组件主要是：<code>ExListOpen / ExListComplex / ExListQuery</code>。</p>
<ol>
<li>先根据options中的配置<code>dynamic.op</code>进行分流操作，如果为true则直接远程读取按钮配置信息，如果为false则直接使用资源文件中的配置。</li>
<li>先执行基础按钮的规范化操作，包括带plugin的按钮配置解析操作。</li>
<li>执行完成后，追加<code>op.extension</code>的扩展按钮操作（options中以<code>op.extension</code>为前缀的选项）：
<ol>
<li>如果<code>op.config</code>中包含<code>executor</code>，则执行直接按钮扩展，从props的<code>$op</code>对象中构造（纯开发）。</li>
<li>如果<code>op.config</code>中只包含<code>connectId</code>属性，则该按钮操作直接绑定onClick生成<code>Ux.connectId</code>的锚点。</li>
</ol>
</li>
</ol>
<p><code>op.extension</code>扩展配置片段如：</p>
<pre class="prettyprint source lang-json"><code>     &quot;op.extension.confirm&quot;: {
         &quot;text&quot;: &quot;确认单据&quot;,
         &quot;icon&quot;: &quot;checked&quot;,
         &quot;className&quot;: &quot;ux-spec&quot;,
         &quot;region&quot;: &quot;op.tab.confirm&quot;,
         &quot;plugin&quot;: {
             &quot;tooltip&quot;: true
         },
         &quot;config&quot;: {
             &quot;connectId&quot;: &quot;$opFinish&quot;,
             &quot;index&quot;: 1
         }
     },
</code></pre>
<p>关于扩展按钮的解析最终会调用<code>yoExtension</code>内置函数（不开放）执行解析，该函数的逻辑会在<code>yo</code>方法中说明，
上述规范化操作完成后，整个按钮部分的配置程序就执行完成，规范化的结果会存储在state中。</p>
<h3>3. 总结</h3>
<p><code>parserOfButton</code>方法执行后，会生成一个带四个子函数的核心对象，这四个子函数主要做按钮级别的配置规范化操作。</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".parserOfColor"><span class="type-signature">(static) </span>parserOfColor<span class="signature">(name)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「解析」<code>Ex.parserOfColor</code></h2>
<h3>1. 基本介绍</h3>
<p>生产日志器专用解析器，返回不同日志器记录日志（每个键都是函数）：</p>
<pre class="prettyprint source lang-js"><code>{
    private: () => &quot;私有组件&quot;,
    form: () => &quot;表单组件&quot;,
    list: () => &quot;列表专用&quot;,
    action: () => &quot;操作组件&quot;,
    tpl: () => &quot;模板&quot;,
    component: () => &quot;通用组件&quot;,
    container: () => &quot;容器组件&quot;,
    page: () => &quot;页面组件&quot;,
    type: () => &quot;分类处理&quot;,
    control: () => &quot;控件&quot;,
    dynamic: () => &quot;动态组件&quot;,
    view: () => &quot;视图组件&quot;,
    define: () => &quot;定义组件&quot;
}
</code></pre>
<h3>2. 日志函数作用规范</h3>
<table>
<thead>
<tr>
<th style="text-align:left">函数名</th>
<th style="text-align:left">日志组件</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">private</td>
<td style="text-align:left">私有组件。</td>
</tr>
<tr>
<td style="text-align:left">form</td>
<td style="text-align:left">表单组件专用<code>&lt;Form/&gt;</code>。</td>
</tr>
<tr>
<td style="text-align:left">list</td>
<td style="text-align:left">列表组件专用<code>&lt;ExListXXX/&gt;</code>。</td>
</tr>
<tr>
<td style="text-align:left">action</td>
<td style="text-align:left">操作按钮专用，通常在列表操作组件中使用。</td>
</tr>
<tr>
<td style="text-align:left">tpl</td>
<td style="text-align:left">模板组件专用。</td>
</tr>
<tr>
<td style="text-align:left">component</td>
<td style="text-align:left">公有组件专用。</td>
</tr>
<tr>
<td style="text-align:left">container</td>
<td style="text-align:left">容器组件专用。</td>
</tr>
<tr>
<td style="text-align:left">page</td>
<td style="text-align:left">页面组件专用。</td>
</tr>
<tr>
<td style="text-align:left">type</td>
<td style="text-align:left">「保留」分类组件专用。</td>
</tr>
<tr>
<td style="text-align:left">control</td>
<td style="text-align:left">自定义控件专用。</td>
</tr>
<tr>
<td style="text-align:left">dynamic</td>
<td style="text-align:left">动态组件专用。</td>
</tr>
<tr>
<td style="text-align:left">view</td>
<td style="text-align:left">视图组件专用。</td>
</tr>
<tr>
<td style="text-align:left">define</td>
<td style="text-align:left">自定义组件专用。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>name</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>组件名称</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        


<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".sexExAction"><span class="type-signature">(static) </span>sexExAction<span class="signature">(reference, key, Component)</span><span class="type-signature"> &rarr; {Object}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「快速」<code>Ex.sexExAction</code></h2>
<p>统一处理特殊带窗口操作按钮：</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;button&quot;: {

    },
    &quot;dialog&quot;:{

    }
}
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用。</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>key</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>被读取的配置键值。</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>Component</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>组件类型。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>处理过后的 Action 相关配置。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Object</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".sexExPlugin"><span class="type-signature">(static) </span>sexExPlugin<span class="signature">(reference, options, key)</span><span class="type-signature"> &rarr; {function}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「快速」<code>Ex.sexExPlugin</code></h2>
<p>如果出现了 pluginKey，则从 Plugin.Function 中读取函数
该函数返回三种信息：</p>
<pre class="prettyprint source lang-json"><code>{
    &quot;selection&quot;: 自动计算，edition = true 并且 deletion = true 时可选择
    &quot;edition&quot;: 默认 true（可编辑）
    &quot;deletion&quot;: 默认 true（可删除）
}
</code></pre>
<blockquote>
<p>限制，批量编辑和批量删除只能针对 edition / deletion 同时为true的时候，否则这种记录都不可能被批量操作选中</p>
</blockquote>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React对应组件引用。</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>options</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>插件配置选项。</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>key</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            

            

            <td class="description last"><p>读取配置的键。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>返回插件专用处理函数。</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">function</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".uiDialog"><span class="type-signature">(static) </span>uiDialog<span class="signature">(reference, consumer)</span><span class="type-signature"> &rarr; {Dialog}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>##「组件」<code>Ex.uiDialog</code></p>
<p>构造Dialog引用组件快速开发窗口，为状态注入<code>__dialog</code>变量（内置）</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React组件引用。</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>consumer</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last"><p>构造Tab的回调函数。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>窗口引用</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Dialog</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".uiTab"><span class="type-signature">(static) </span>uiTab<span class="signature">(reference, consumer)</span><span class="type-signature"> &rarr; {Tab}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <p>##「组件」<code>Ex.uiTab</code></p>
<p>构造Tab应用组件快速开发页签，为状态注入<code>__tabs</code>变量（内置）</p>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>reference</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>
|

<span class="param-type">ReactComponent</span>


            
            </td>

            

            

            <td class="description last"><p>React组件引用。</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>consumer</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last"><p>构造Tab的回调函数。</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>窗口引用</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Tab</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".xuiContainer"><span class="type-signature">(static) </span>xuiContainer<span class="signature">(container, UI, inherit, fnJsx)</span><span class="type-signature"> &rarr; {boolean|Jsx}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「动态」<code>Ex.xuiContainer</code></h2>
<h3>1.基本介绍</h3>
<p>执行 <code>xuiContainer</code> 专用容器控件渲染，该函数主要用于渲染容器基础配置，该函数支持两种渲染模式：</p>
<ol>
<li>无容器模式：<code>container</code>无配置，为空。</li>
<li>有容器模式：<code>container</code>中有内容，带容器渲染。</li>
</ol>
<h3>2.参数说明</h3>
<ol>
<li>container：容器配置信息，对应后端的<code>containerConfig</code>配置对象。</li>
<li>UI：配置专用组件<code>import UI from 'oi';</code>，专用于配置的核心组件定义（Ox组件）。</li>
<li>inherit：继承属性集，构造继承属性，连接原生<code>yoAmbient</code>构造的属性集。</li>
<li>fnJsx：「Jsx渲染函数」组件专用Jsx渲染函数，容器函数会笼罩在<code>fnJsx</code>外围。</li>
</ol>
<h3>3.追加属性</h3>
<blockquote>
<p>除开<code>Ex.yoAmbient</code>函数构造的属性集以外，当前函数会追加特定属性信息</p>
</blockquote>
<table>
<thead>
<tr>
<th style="text-align:left">属性名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">key</td>
<td style="text-align:left">配置中的组件key信息，来自于container.config.key键值。</td>
</tr>
<tr>
<td style="text-align:left">$metadata</td>
<td style="text-align:left">元数据信息，记录了组件key，组件名称，页面ID，组件类型等。</td>
</tr>
<tr>
<td style="text-align:left">$fabric</td>
<td style="text-align:left">从props和state中构造所有Fabric引擎所需的基础配置。</td>
</tr>
<tr>
<td style="text-align:left">$controls</td>
<td style="text-align:left">组件配置，存储了当前页面所需的所有配置信息。</td>
</tr>
</tbody>
</table>
<h4>3.1.$metadata结构</h4>
<pre class="prettyprint source lang-js"><code>{
    key: &quot;组件key&quot;,
    type: &quot;组件名称，系统会根据该名称读取容器组件&quot;,
    page: &quot;当前配置中的pageId，页面ID&quot;,
    componentType: &quot;当前容器类型&quot;
}
</code></pre>
<h4>3.2.$controls加锁</h4>
<p>$controls变量会在读取完成后执行加锁<code>Object.freeze</code>操作，一旦加锁后，该配置信息不可被更改（只读）。</p>
<h4>3.3.递归渲染</h4>
<p>在<code>container + component</code>结构中，还允许<code>component</code>定义自我容器，如果出现自我容器，则容器会构造两层，如：</p>
<pre class="prettyprint source lang-jsx"><code>&lt;Container>
    &lt;SelfContainer>
        &lt;Component/>
    &lt;/SelfContainer>
&lt;/Container>
</code></pre>
<ul>
<li>Container：外层容器配置的基础信息<code>containerConfig</code>。</li>
<li>SelfContainer：内层容器配置的基础信息。</li>
<li>Component：组件本身以及组件基础配置。</li>
<li><code>SelfContainer + Component</code>等价于<code>xuiControl</code>的内容。</li>
</ul>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>container</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>容器配置信息</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>UI</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>组件配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>inherit</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>将被继承的属性表</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>fnJsx</code></td>
            

            <td class="type">
            
                
<span class="param-type">function</span>


            
            </td>

            

            

            <td class="description last"><p>容器中组件渲染专用函数</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>渲染带容器的组件信息</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>
|

<span class="param-type">Jsx</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".xuiDecorator"><span class="type-signature">(static) </span>xuiDecorator<span class="signature">(configuration, UI, inherit, state)</span><span class="type-signature"> &rarr; {boolean|Jsx}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「动态」<code>Ex.xuiDecorator</code></h2>
<h3>1.基本介绍</h3>
<p>执行 <code>xuiDecorator</code> 修饰包装组件。</p>
<ol>
<li>提取 control 中的配置信息</li>
<li>是否执行了 $switcher 的随机跳跃处理（刷新界面专用）</li>
<li>事件执行器，针对特殊节点：<code>decorator</code> 执行事件注入解析工作</li>
</ol>
<h3>2.xuiControl解析流程</h3>
<p>根据传入的配置信息，构造组件配置。</p>
<h4>2.1.基础流程：</h4>
<ul>
<li>如果<code>isContainer = true</code>，证明当前组件带容器配置，先渲染容器，再渲染组件。</li>
<li>如果提取了<code>control.name</code>，从<code>UI</code>中构造的组件，则执行组件渲染。</li>
<li>如果内置包含了<code>control.container</code>，则构造内置容器。</li>
</ul>
<h4>2.2.继承属性：</h4>
<table>
<thead>
<tr>
<th style="text-align:left">属性名</th>
<th style="text-align:left">含义</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">data</td>
<td style="text-align:left">构造当前组件所需的数据信息，调用<code>seekData</code>方法执行计算（只能同步操作）。</td>
</tr>
<tr>
<td style="text-align:left">config</td>
<td style="text-align:left">构造当前组件所需的配置信息。</td>
</tr>
<tr>
<td style="text-align:left">event</td>
<td style="text-align:left">事件专用配置信息，该事件会在内部执行Fabric引擎。</td>
</tr>
</tbody>
</table>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>configuration</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>修饰组件专用配置数据</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>UI</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>组件配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>inherit</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>将被继承的属性表</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>state</code></td>
            

            <td class="type">
            
                
<span class="param-type">State</span>


            
            </td>

            

            

            <td class="description last"><p>组件专用状态信息</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>渲染修饰过的组件</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">boolean</span>
|

<span class="param-type">Jsx</span>


    </dd>
</dl>

    



        
            

    

    <h4 class="name" id=".xuiGrid"><span class="type-signature">(static) </span>xuiGrid<span class="signature">(grid, UI, inherit)</span><span class="type-signature"> &rarr; {Jsx}</span></h4>

    




<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>





<div class="description usertext">
    <h2>「动态」<code>Ex.xuiGrid</code></h2>
<h3>1.基本介绍</h3>
<p>执行 <code>xuiGrid</code> 专用Grid控件布局，执行每个单元格的渲染操作，Grid执行行列渲染。每个单元格内部：</p>
<ol>
<li>xuiCell：执行单元格内容渲染。</li>
<li>xuiColumn：执行单元格属性渲染<code>&lt;Col/&gt;</code>元素。</li>
</ol>
<h3>2.xuiCell</h3>
<p>xuiCell用于构造<code>fnJsx</code>函数，内置会递归执行：</p>
<ol>
<li>xuiGrid：<code>rows</code>配置。</li>
<li>xuiDecorator：<code>control</code>配置。</li>
</ol>
<h3>3.最终骨架</h3>
<p>最终骨架代码：</p>
<h4>3.1.容器部分</h4>
<pre class="prettyprint source lang-jsx"><code>&lt;Container>
    &lt;SelfContainer>
        &lt;Component/>
    &lt;/SelfContainer>
&lt;/Container>
</code></pre>
<h4>3.2.网格部分</h4>
<p>上边骨架中的<code>&lt;Component/&gt;</code>部分</p>
<pre class="prettyprint source lang-jsx"><code>&lt;Row>
    &lt;Col>
         {xuiGrid}
         {xuiDecorator}
    &lt;/Col>
&lt;/Row>
</code></pre>
</div>











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>grid</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Array></span>


            
            </td>

            

            

            <td class="description last"><p>Grid布局专用二维数组配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>UI</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>组件配置</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>inherit</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            

            

            <td class="description last"><p>将被继承的属性表</p></td>
        </tr>

    
    </tbody>
</table>
















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>渲染行列<code>&lt;Row&gt;, &lt;Col&gt;</code>的Grid组件</p>
</div>



<dl class="param-type">
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Jsx</span>


    </dd>
</dl>

    



        
    

    
        <h3 class="subsection-title">Type Definitions</h3>

        
                
<h4 class="name" id="~Ex">Ex</h4>





<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    
</dl>












            
    

    
</article>

</section>




    
    
</div>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.6</a> on Fri Apr 15 2022 15:55:10 GMT+0800 (China Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
</footer>

<script>prettyPrint();</script>
<script src="scripts/polyfill.js"></script>
<script src="scripts/linenumber.js"></script>

<script src="scripts/search.js" defer></script>



</body>
</html>